package com.hongchen.wechat.config;

import com.jfinal.kit.PropKit;
import com.jfinal.weixin.sdk.api.*;
import com.realdtech.base.ui.easyui.EasyUIController;

/**
 * Created by 3426624897@qq.com on 2018/2/8 0008.
 */
public class Api extends EasyUIController {

    public ApiConfig getApiConfig() {
        ApiConfig ac = new ApiConfig();

        ac.setToken(PropKit.use("weixin.properties").get("token"));
        ac.setAppId(PropKit.use("weixin.properties").get("appId"));
        ac.setAppSecret(PropKit.use("weixin.properties").get("appSecret"));
        ac.setEncryptMessage(PropKit.use("weixin.properties").getBoolean("encryption"));
        ac.setEncodingAesKey(PropKit.use("weixin.properties").get("encodingAesKey"));

        return ac;
    }

    /**
     * 获取appId 账号
     * @return
     */
    public String appId(){
        return PropKit.use("weixin.properties").get("appId");
    }

    /**
     * 获取映射号
     * @return
     */
    public String chengDong(){
        return PropKit.use("weixin.properties").get("chengDong");
    }

    /**
     * 获取appSecret 秘钥
     * @return
     */
    public String appSecret(){
        return PropKit.use("weixin.properties").get("appSecret");
    }


    /**
     *根据获取到的code来获取用户详细数据
     * 注意，每次授权链接后只能调用一次，否则数据为空-微信规定每个code只能使用一次
     */
    public ApiResult userdetail(){
        //必须要加
        ApiConfigKit.setThreadLocalApiConfig(getApiConfig());

        //获取code
        String code=getPara("code");

        //根据appid-秘钥-code获取openid
        SnsAccessToken s= SnsAccessTokenApi.getSnsAccessToken(appId(),appSecret(),code);
        //根据获取到的openid来获取用户详细数据
        ApiResult user = SnsApi.getUserInfo(s.getAccessToken(),s.getOpenid());
        return user;
    }

    /**
     * 发送客服消息
     * @param openid 用户的唯一标识符
     * @param text 要发送的文字
     */
    public void WxText(String openid,String text){
        ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
        //发送客服消息
        CustomServiceApi.sendText(openid,text);
    }
}
